package br.com.ac.fatureweb.model.carga;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import br.com.ac.fatureweb.integration.enums.EnumSituacaoLigacao;
import br.com.ac.fatureweb.model.Carga;
import br.com.ac.fatureweb.model.billing.Conta;
import br.com.ac.fatureweb.model.billing.LancamentoCobrado;
import br.com.ac.fatureweb.model.billing.LogCorrecaoConta;
import br.com.ac.fatureweb.model.billing.LogLeitura;
import br.com.ac.fatureweb.model.billing.Produto;
import br.com.ac.fatureweb.model.billing.Valor;
import br.com.ac.fatureweb.model.billing.Volume;
import br.com.ac.fatureweb.utilitary.Model;

@Entity
@Table(name = "IMOVEL")
@SequenceGenerator(name = "SEQ_IMOVEL", sequenceName = "SEQ_IMOVEL", allocationSize = 1, initialValue = 1)
public class Imovel extends Model {

	/**
	 *
	 */
	private static final long serialVersionUID = -2959352370871894049L;

	@Id
	@GeneratedValue(generator = "SEQ_IMOVEL", strategy = GenerationType.SEQUENCE)
	@Column(name = "ID")
	private Long id;

	@Column(name = "INSCRICAO")
	private Long inscricao;

	@Column(name = "MES_FATURAMENTO")
	private Integer mes;

	@Column(name = "ANO_FATURAMENTO")
	private Integer ano;

	@Column(name = "COD_LOCALIDADE")
	private Long codLocalidade;

	@Column(name = "COD_DISTRITO")
	private Long codDistrito;

	@Column(name = "COD_SETOR")
	private Long codSetor;

	@Column(name = "ORDEM_ROTEIRO")
	private Integer ordemRoteiro;

	@Column(name = "NOME_RESPONSAVEL")
	private String nomeResponsavel;

	@Column(name = "CPFCNPJ_CONSUMIDOR")
	private String cpfcnpj;

	@Column(name = "NOME_DA_RUA")
	private String rua;

	@Column(name = "NUMERO_IMOVEL")
	private String numero;

	@Column(name = "COMPLEMENTO")
	private String complemento;

	@Column(name = "NOME_DO_BAIRRO")
	private String bairro;

	@Column(name = "NOME_CIDADE")
	private String cidade;

	@Column(name = "NOME_UF")
	private String uf;

	@Column(name = "CEP")
	private String cep;

	@Column(name = "CATEGORIA")
	private String categoria;

	@Column(name = "CLASSE")
	private String classe;

	@Column(name = "TARIFA")
	private Long tarifa;

	@Column(name = "HIDROMETRO")
	private boolean temHidrometro;

	@Column(name = "NUMERO_DO_HIDROMETRO")
	private String numeroHidrometro;

	@Column(name = "DATA_INSTALACAO_HIDROMETRO")
	@Temporal(TemporalType.DATE)
	private Date dataInstalacaoHidrometro;

	@Column(name = "CONSUMO_MEDIO")
	private Long consumoMedio;

	@Column(name = "LEITURA_ANTERIOR")
	private Long leituraAnterior;

	@Column(name = "OCOR_ANTERIOR")
	private Long ocorrenciaAnterior;

	@Column(name = "DATA_LEITURA_ANT")
	@Temporal(TemporalType.DATE)
	private Date dataLeituraAnterior;

	@Column(name = "COD_RESERVATORIO")
	private Long codReservatorio;

	@Column(name = "FATURA_AGUA")
	private boolean flgFaturaAgua;

	@Column(name = "FATURA_ESGOTO")
	private boolean flgFaturaEsgoto;

	@Column(name = "PCT_ESGOTO")
	private Double percentualEsgoto;

	@Column(name = "ISENTO_CONSHID")
	private boolean isentoConshid;

	@Column(name = "ISENTO_TAXA1")
	private boolean isentoTaxa1;

	@Column(name = "ISENTO_TAXA2")
	private boolean isentoTaxa2;

	@Column(name = "IND_EMITIRCONTA")
	private boolean flgEmitirConta;

	@Column(name = "SITUACAO")
	@Enumerated(EnumType.ORDINAL)
	private EnumSituacaoLigacao situacao;

	@Column(name = "AGRUPADORA")
	private boolean agrupadora;

	@Column(name = "DEBITO_CONTA")
	private boolean flgDebitoEmConta;

	@Column(name = "MESES_EM_DEBITO")
	private String mesesDebito;

	@Column(name = "DATA_PROXIMA_LEITURA")
	@Temporal(TemporalType.DATE)
	private Date dataProximaLeitura;

	@Column(name = "DATA_VENCIMENTO")
	@Temporal(TemporalType.DATE)
	private Date dataVencimento;

	@Column(name = "NUM_FATURA")
	private String numeroFatura;

	@Column(name = "CODIGO_BARRAS")
	private String codigoBarras;

	@ManyToOne
	@JoinColumn(name = "ID_CARGA", referencedColumnName = "ID")
	private Carga carga;

	@Transient
	private String competencia;

	@Transient
	private List<Debito> lstDebitos;

	@Transient
	private List<Economia> lstEconomias;

	@Transient
	private Historico historico;

	@Transient
	private List<LancamentoFuturo> lstLancamentoFuturo;

	@Transient
	private List<SaldoDebitoCredito> lstSaldoDebitoCredito;

	@Transient
	private List<TarifaSocial> lstTarifaSocial;

	@Transient
	private Tarifa tarifaAux;

	/*
	 * Dados Retorno
	 */
	@Transient
	private Conta conta;

	@Transient
	private List<LancamentoCobrado> lstLancamentoCobrado;

	@Transient
	private List<LogCorrecaoConta> lstLogCorrecaoConta;

	@Transient
	private LogLeitura logLeitura;

	@Transient
	private List<Produto> lstProduto;

	@Transient
	private List<Valor> lstValor;

	@Transient
	private List<Volume> lstVolume;

	/**
	 * @author Brunno Gonçalves (brunnogoncalves@gmail.com) 05/02/2015
	 * @return
	 */
	public String getEnderecoFormatado() {

		String retorno = "";
		if (rua != null) {
			retorno += rua;
		}
		if (numero != null) {
			retorno += ", " + numero;
		}
		if (complemento != null) {
			retorno += " " + complemento;
		}
		if (bairro != null) {
			retorno += ", " + bairro;
		}
		if (cidade != null) {
			retorno += " - " + cidade;
		}
		if (uf != null) {
			retorno += "/" + uf;
		}
		if (cep != null) {
			retorno += " - CEP: " + cep;
		}

		return retorno;
	}

	public Imovel() {
		super();
	}

	public Imovel(Long id) {
		super();
		this.id = id;
	}

	@Override
	public Long getId() {
		return id;
	}

	@Override
	public void setId(Long id) {
		this.id = id;
	}

	public Imovel(Imovel imovel, Integer ordem, Long idCarga) {
		super();
		this.id = imovel.getId();
		this.carga = new Carga(idCarga);
		this.inscricao = imovel.getInscricao();
		this.mes = imovel.getMes();
		this.ano = imovel.getAno();
		this.codLocalidade = imovel.getCodLocalidade();
		this.codDistrito = imovel.getCodDistrito();
		this.codSetor = imovel.getCodSetor();
		this.ordemRoteiro = ordem;
		this.nomeResponsavel = imovel.getNomeResponsavel();
		this.cpfcnpj = imovel.getCpfcnpj();
		this.rua = imovel.getRua();
		this.numero = imovel.getNumero();
		this.complemento = imovel.getComplemento();
		this.bairro = imovel.getBairro();
		this.cidade = imovel.getCidade();
		this.uf = imovel.getUf();
		this.cep = imovel.getCep();
		this.categoria = imovel.getCategoria();
		this.classe = imovel.getClasse();
		this.tarifa = imovel.getTarifa();
		this.temHidrometro = imovel.isTemHidrometro();
		this.numeroHidrometro = imovel.getNumeroHidrometro();
		this.dataInstalacaoHidrometro = imovel.getDataInstalacaoHidrometro();
		this.consumoMedio = imovel.getConsumoMedio();
		this.leituraAnterior = imovel.getLeituraAnterior();
		this.ocorrenciaAnterior = imovel.getOcorrenciaAnterior();
		this.dataLeituraAnterior = imovel.getDataLeituraAnterior();
		this.codReservatorio = imovel.getCodReservatorio();
		this.flgFaturaAgua = imovel.isFlgFaturaAgua();
		this.flgFaturaEsgoto = imovel.isFlgFaturaEsgoto();
		this.percentualEsgoto = imovel.getPercentualEsgoto();
		this.isentoConshid = imovel.isIsentoConshid();
		this.isentoTaxa1 = imovel.isIsentoTaxa1();
		this.isentoTaxa2 = imovel.isIsentoTaxa2();
		this.flgEmitirConta = imovel.isFlgEmitirConta();
		this.situacao = imovel.getSituacao();
		this.agrupadora = imovel.isAgrupadora();
		this.flgDebitoEmConta = imovel.isFlgDebitoEmConta();
		this.mesesDebito = imovel.getMesesDebito();
		this.dataProximaLeitura = imovel.getDataProximaLeitura();
		this.dataVencimento = imovel.getDataVencimento();
		this.numeroFatura = imovel.getNumeroFatura();
		this.codigoBarras = imovel.getCodigoBarras();
	}

	public Imovel(Long id, Long inscricao, Integer mes, Integer ano,
			Long codLocalidade, Long codDistrito, Long codSetor,
			Integer ordemRoteiro, String nomeResponsavel, String cpfcnpj,
			String rua, String numero, String complemento, String bairro,
			String cidade, String uf, String cep, String categoria,
			String classe, Long tarifa, boolean temHidrometro,
			String numeroHidrometro, Date dataInstalacaoHidrometro,
			Long consumoMedio, Long leituraAnterior, Long ocorrenciaAnterior,
			Date dataLeituraAnterior, Long codReservatorio,
			boolean flgFaturaAgua, boolean flgFaturaEsgoto,
			Double percentualEsgoto, boolean isentoConshid,
			boolean isentoTaxa1, boolean isentoTaxa2, boolean flgEmitirConta,
			EnumSituacaoLigacao situacao, boolean agrupadora,
			boolean flgDebitoEmConta, String mesesDebito,
			Date dataProximaLeitura, Date dataVencimento, String numeroFatura,
			String codigoBarras) {
		super();
		this.id = id;
		this.inscricao = inscricao;
		this.mes = mes;
		this.ano = ano;
		this.codLocalidade = codLocalidade;
		this.codDistrito = codDistrito;
		this.codSetor = codSetor;
		this.ordemRoteiro = ordemRoteiro;
		this.nomeResponsavel = nomeResponsavel;
		this.cpfcnpj = cpfcnpj;
		this.rua = rua;
		this.numero = numero;
		this.complemento = complemento;
		this.bairro = bairro;
		this.cidade = cidade;
		this.uf = uf;
		this.cep = cep;
		this.categoria = categoria;
		this.classe = classe;
		this.tarifa = tarifa;
		this.temHidrometro = temHidrometro;
		this.numeroHidrometro = numeroHidrometro;
		this.dataInstalacaoHidrometro = dataInstalacaoHidrometro;
		this.consumoMedio = consumoMedio;
		this.leituraAnterior = leituraAnterior;
		this.ocorrenciaAnterior = ocorrenciaAnterior;
		this.dataLeituraAnterior = dataLeituraAnterior;
		this.codReservatorio = codReservatorio;
		this.flgFaturaAgua = flgFaturaAgua;
		this.flgFaturaEsgoto = flgFaturaEsgoto;
		this.percentualEsgoto = percentualEsgoto;
		this.isentoConshid = isentoConshid;
		this.isentoTaxa1 = isentoTaxa1;
		this.isentoTaxa2 = isentoTaxa2;
		this.flgEmitirConta = flgEmitirConta;
		this.situacao = situacao;
		this.agrupadora = agrupadora;
		this.flgDebitoEmConta = flgDebitoEmConta;
		this.mesesDebito = mesesDebito;
		this.dataProximaLeitura = dataProximaLeitura;
		this.dataVencimento = dataVencimento;
		this.numeroFatura = numeroFatura;
		this.codigoBarras = codigoBarras;
	}

	public Imovel(Long id, Long inscricao, Integer mes, Integer ano,
			Long codLocalidade, Long codDistrito, Long codSetor,
			Integer ordemRoteiro, String nomeResponsavel, String cpfcnpj,
			String rua, String numero, String complemento, String bairro,
			String cidade, String uf, String cep, String categoria,
			String classe, Long tarifa, boolean temHidrometro,
			String numeroHidrometro, Date dataInstalacaoHidrometro,
			Long consumoMedio, Long leituraAnterior, Long ocorrenciaAnterior,
			Date dataLeituraAnterior, Long codReservatorio,
			boolean flgFaturaAgua, boolean flgFaturaEsgoto,
			Double percentualEsgoto, boolean isentoConshid,
			boolean isentoTaxa1, boolean isentoTaxa2, boolean flgEmitirConta,
			EnumSituacaoLigacao situacao, boolean agrupadora,
			boolean flgDebitoEmConta, String mesesDebito,
			Date dataProximaLeitura, Date dataVencimento, String numeroFatura,
			String codigoBarras, Carga carga) {
		super();
		this.id = id;
		this.inscricao = inscricao;
		this.mes = mes;
		this.ano = ano;
		this.codLocalidade = codLocalidade;
		this.codDistrito = codDistrito;
		this.codSetor = codSetor;
		this.ordemRoteiro = ordemRoteiro;
		this.nomeResponsavel = nomeResponsavel;
		this.cpfcnpj = cpfcnpj;
		this.rua = rua;
		this.numero = numero;
		this.complemento = complemento;
		this.bairro = bairro;
		this.cidade = cidade;
		this.uf = uf;
		this.cep = cep;
		this.categoria = categoria;
		this.classe = classe;
		this.tarifa = tarifa;
		this.temHidrometro = temHidrometro;
		this.numeroHidrometro = numeroHidrometro;
		this.dataInstalacaoHidrometro = dataInstalacaoHidrometro;
		this.consumoMedio = consumoMedio;
		this.leituraAnterior = leituraAnterior;
		this.ocorrenciaAnterior = ocorrenciaAnterior;
		this.dataLeituraAnterior = dataLeituraAnterior;
		this.codReservatorio = codReservatorio;
		this.flgFaturaAgua = flgFaturaAgua;
		this.flgFaturaEsgoto = flgFaturaEsgoto;
		this.percentualEsgoto = percentualEsgoto;
		this.isentoConshid = isentoConshid;
		this.isentoTaxa1 = isentoTaxa1;
		this.isentoTaxa2 = isentoTaxa2;
		this.flgEmitirConta = flgEmitirConta;
		this.situacao = situacao;
		this.agrupadora = agrupadora;
		this.flgDebitoEmConta = flgDebitoEmConta;
		this.mesesDebito = mesesDebito;
		this.dataProximaLeitura = dataProximaLeitura;
		this.dataVencimento = dataVencimento;
		this.numeroFatura = numeroFatura;
		this.codigoBarras = codigoBarras;
		this.carga = carga;
	}

	/**
	 * @author Brunno Gonçalves (brunnogoncalves@gmail.com) 25/01/2015
	 * @return Competência formatada (mm/yyyy)
	 */
	public String getCompetenciaFormatada() {
		if (mes != null && ano != null) {
			String mes = "";
			if (this.mes > 0 && this.mes < 10) {
				mes = "0" + this.mes.toString();
			} else {
				mes = this.mes.toString();
			}
			return mes + "/" + ano.toString();
		}

		return null;
	}

	/**
	 * @return the inscricao
	 */
	public Long getInscricao() {
		return inscricao;
	}

	/**
	 * @param inscricao
	 *            the inscricao to set
	 */
	public void setInscricao(Long inscricao) {
		this.inscricao = inscricao;
	}

	/**
	 * @return the mes
	 */
	public Integer getMes() {
		return mes;
	}

	/**
	 * @param mes
	 *            the mes to set
	 */
	public void setMes(Integer mes) {
		this.mes = mes;
	}

	/**
	 * @return the ano
	 */
	public Integer getAno() {
		return ano;
	}

	/**
	 * @param ano
	 *            the ano to set
	 */
	public void setAno(Integer ano) {
		this.ano = ano;
	}

	/**
	 * @return the codLocalidade
	 */
	public Long getCodLocalidade() {
		return codLocalidade;
	}

	/**
	 * @param codLocalidade
	 *            the codLocalidade to set
	 */
	public void setCodLocalidade(Long codLocalidade) {
		this.codLocalidade = codLocalidade;
	}

	/**
	 * @return the codDistrito
	 */
	public Long getCodDistrito() {
		return codDistrito;
	}

	/**
	 * @param codDistrito
	 *            the codDistrito to set
	 */
	public void setCodDistrito(Long codDistrito) {
		this.codDistrito = codDistrito;
	}

	/**
	 * @return the codSetor
	 */
	public Long getCodSetor() {
		return codSetor;
	}

	/**
	 * @param codSetor
	 *            the codSetor to set
	 */
	public void setCodSetor(Long codSetor) {
		this.codSetor = codSetor;
	}

	/**
	 * @return the ordemRoteiro
	 */
	public Integer getOrdemRoteiro() {
		return ordemRoteiro;
	}

	/**
	 * @param ordemRoteiro
	 *            the ordemRoteiro to set
	 */
	public void setOrdemRoteiro(Integer ordemRoteiro) {
		this.ordemRoteiro = ordemRoteiro;
	}

	/**
	 * @return the nomeResponsavel
	 */
	public String getNomeResponsavel() {
		return nomeResponsavel;
	}

	/**
	 * @param nomeResponsavel
	 *            the nomeResponsavel to set
	 */
	public void setNomeResponsavel(String nomeResponsavel) {
		this.nomeResponsavel = nomeResponsavel;
	}

	/**
	 * @return the cpfcnpj
	 */
	public String getCpfcnpj() {
		return cpfcnpj;
	}

	/**
	 * @param cpfcnpj
	 *            the cpfcnpj to set
	 */
	public void setCpfcnpj(String cpfcnpj) {
		this.cpfcnpj = cpfcnpj;
	}

	/**
	 * @return the rua
	 */
	public String getRua() {
		return rua;
	}

	/**
	 * @param rua
	 *            the rua to set
	 */
	public void setRua(String rua) {
		this.rua = rua;
	}

	/**
	 * @return the numero
	 */
	public String getNumero() {
		return numero;
	}

	/**
	 * @param numero
	 *            the numero to set
	 */
	public void setNumero(String numero) {
		this.numero = numero;
	}

	/**
	 * @return the complemento
	 */
	public String getComplemento() {
		return complemento;
	}

	/**
	 * @param complemento
	 *            the complemento to set
	 */
	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	/**
	 * @return the bairro
	 */
	public String getBairro() {
		return bairro;
	}

	/**
	 * @param bairro
	 *            the bairro to set
	 */
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	/**
	 * @return the cidade
	 */
	public String getCidade() {
		return cidade;
	}

	/**
	 * @param cidade
	 *            the cidade to set
	 */
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	/**
	 * @return the uf
	 */
	public String getUf() {
		return uf;
	}

	/**
	 * @param uf
	 *            the uf to set
	 */
	public void setUf(String uf) {
		this.uf = uf;
	}

	/**
	 * @return the cep
	 */
	public String getCep() {
		return cep;
	}

	/**
	 * @param cep
	 *            the cep to set
	 */
	public void setCep(String cep) {
		this.cep = cep;
	}

	/**
	 * @return the categoria
	 */
	public String getCategoria() {
		return categoria;
	}

	/**
	 * @param categoria
	 *            the categoria to set
	 */
	public void setCategoria(String categoria) {
		this.categoria = categoria;
	}

	/**
	 * @return the classe
	 */
	public String getClasse() {
		return classe;
	}

	/**
	 * @param classe
	 *            the classe to set
	 */
	public void setClasse(String classe) {
		this.classe = classe;
	}

	/**
	 * @return the tarifa
	 */
	public Long getTarifa() {
		return tarifa;
	}

	/**
	 * @param tarifa
	 *            the tarifa to set
	 */
	public void setTarifa(Long tarifa) {
		this.tarifa = tarifa;
	}

	/**
	 * @return the temHidrometro
	 */
	public boolean isTemHidrometro() {
		return temHidrometro;
	}

	/**
	 * @param temHidrometro
	 *            the temHidrometro to set
	 */
	public void setTemHidrometro(boolean temHidrometro) {
		this.temHidrometro = temHidrometro;
	}

	/**
	 * @return the numeroHidrometro
	 */
	public String getNumeroHidrometro() {
		return numeroHidrometro;
	}

	/**
	 * @param numeroHidrometro
	 *            the numeroHidrometro to set
	 */
	public void setNumeroHidrometro(String numeroHidrometro) {
		this.numeroHidrometro = numeroHidrometro;
	}

	/**
	 * @return the dataInstalacaoHidrometro
	 */
	public Date getDataInstalacaoHidrometro() {
		return dataInstalacaoHidrometro;
	}

	/**
	 * @param dataInstalacaoHidrometro
	 *            the dataInstalacaoHidrometro to set
	 */
	public void setDataInstalacaoHidrometro(Date dataInstalacaoHidrometro) {
		this.dataInstalacaoHidrometro = dataInstalacaoHidrometro;
	}

	/**
	 * @return the consumoMedio
	 */
	public Long getConsumoMedio() {
		return consumoMedio;
	}

	/**
	 * @param consumoMedio
	 *            the consumoMedio to set
	 */
	public void setConsumoMedio(Long consumoMedio) {
		this.consumoMedio = consumoMedio;
	}

	/**
	 * @return the leituraAnterior
	 */
	public Long getLeituraAnterior() {
		return leituraAnterior;
	}

	/**
	 * @param leituraAnterior
	 *            the leituraAnterior to set
	 */
	public void setLeituraAnterior(Long leituraAnterior) {
		this.leituraAnterior = leituraAnterior;
	}

	/**
	 * @return the ocorrenciaAnterior
	 */
	public Long getOcorrenciaAnterior() {
		return ocorrenciaAnterior;
	}

	/**
	 * @param ocorrenciaAnterior
	 *            the ocorrenciaAnterior to set
	 */
	public void setOcorrenciaAnterior(Long ocorrenciaAnterior) {
		this.ocorrenciaAnterior = ocorrenciaAnterior;
	}

	/**
	 * @return the dataLeituraAnterior
	 */
	public Date getDataLeituraAnterior() {
		return dataLeituraAnterior;
	}

	/**
	 * @param dataLeituraAnterior
	 *            the dataLeituraAnterior to set
	 */
	public void setDataLeituraAnterior(Date dataLeituraAnterior) {
		this.dataLeituraAnterior = dataLeituraAnterior;
	}

	/**
	 * @return the codReservatorio
	 */
	public Long getCodReservatorio() {
		return codReservatorio;
	}

	/**
	 * @param codReservatorio
	 *            the codReservatorio to set
	 */
	public void setCodReservatorio(Long codReservatorio) {
		this.codReservatorio = codReservatorio;
	}

	/**
	 * @return the flgFaturaAgua
	 */
	public boolean isFlgFaturaAgua() {
		return flgFaturaAgua;
	}

	/**
	 * @param flgFaturaAgua
	 *            the flgFaturaAgua to set
	 */
	public void setFlgFaturaAgua(boolean flgFaturaAgua) {
		this.flgFaturaAgua = flgFaturaAgua;
	}

	/**
	 * @return the flgFaturaEsgoto
	 */
	public boolean isFlgFaturaEsgoto() {
		return flgFaturaEsgoto;
	}

	/**
	 * @param flgFaturaEsgoto
	 *            the flgFaturaEsgoto to set
	 */
	public void setFlgFaturaEsgoto(boolean flgFaturaEsgoto) {
		this.flgFaturaEsgoto = flgFaturaEsgoto;
	}

	/**
	 * @return the percentualEsgoto
	 */
	public Double getPercentualEsgoto() {
		return percentualEsgoto;
	}

	/**
	 * @param percentualEsgoto
	 *            the percentualEsgoto to set
	 */
	public void setPercentualEsgoto(Double percentualEsgoto) {
		this.percentualEsgoto = percentualEsgoto;
	}

	/**
	 * @return the isentoConshid
	 */
	public boolean isIsentoConshid() {
		return isentoConshid;
	}

	/**
	 * @param isentoConshid
	 *            the isentoConshid to set
	 */
	public void setIsentoConshid(boolean isentoConshid) {
		this.isentoConshid = isentoConshid;
	}

	/**
	 * @return the isentoTaxa1
	 */
	public boolean isIsentoTaxa1() {
		return isentoTaxa1;
	}

	/**
	 * @param isentoTaxa1
	 *            the isentoTaxa1 to set
	 */
	public void setIsentoTaxa1(boolean isentoTaxa1) {
		this.isentoTaxa1 = isentoTaxa1;
	}

	/**
	 * @return the isentoTaxa2
	 */
	public boolean isIsentoTaxa2() {
		return isentoTaxa2;
	}

	/**
	 * @param isentoTaxa2
	 *            the isentoTaxa2 to set
	 */
	public void setIsentoTaxa2(boolean isentoTaxa2) {
		this.isentoTaxa2 = isentoTaxa2;
	}

	/**
	 * @return the flgEmitirConta
	 */
	public boolean isFlgEmitirConta() {
		return flgEmitirConta;
	}

	/**
	 * @param flgEmitirConta
	 *            the flgEmitirConta to set
	 */
	public void setFlgEmitirConta(boolean flgEmitirConta) {
		this.flgEmitirConta = flgEmitirConta;
	}

	/**
	 * @return the situacao
	 */
	public EnumSituacaoLigacao getSituacao() {
		return situacao;
	}

	/**
	 * @param situacao
	 *            the situacao to set
	 */
	public void setSituacao(EnumSituacaoLigacao situacao) {
		this.situacao = situacao;
	}

	/**
	 * @return the agrupadora
	 */
	public boolean isAgrupadora() {
		return agrupadora;
	}

	/**
	 * @param agrupadora
	 *            the agrupadora to set
	 */
	public void setAgrupadora(boolean agrupadora) {
		this.agrupadora = agrupadora;
	}

	/**
	 * @return the flgDebitoEmConta
	 */
	public boolean isFlgDebitoEmConta() {
		return flgDebitoEmConta;
	}

	/**
	 * @param flgDebitoEmConta
	 *            the flgDebitoEmConta to set
	 */
	public void setFlgDebitoEmConta(boolean flgDebitoEmConta) {
		this.flgDebitoEmConta = flgDebitoEmConta;
	}

	/**
	 * @return the mesesDebito
	 */
	public String getMesesDebito() {
		return mesesDebito;
	}

	/**
	 * @param mesesDebito
	 *            the mesesDebito to set
	 */
	public void setMesesDebito(String mesesDebito) {
		this.mesesDebito = mesesDebito;
	}

	/**
	 * @return the dataProximaLeitura
	 */
	public Date getDataProximaLeitura() {
		return dataProximaLeitura;
	}

	/**
	 * @param dataProximaLeitura
	 *            the dataProximaLeitura to set
	 */
	public void setDataProximaLeitura(Date dataProximaLeitura) {
		this.dataProximaLeitura = dataProximaLeitura;
	}

	/**
	 * @return the dataVencimento
	 */
	public Date getDataVencimento() {
		return dataVencimento;
	}

	/**
	 * @param dataVencimento
	 *            the dataVencimento to set
	 */
	public void setDataVencimento(Date dataVencimento) {
		this.dataVencimento = dataVencimento;
	}

	/**
	 * @return the numeroFatura
	 */
	public String getNumeroFatura() {
		return numeroFatura;
	}

	/**
	 * @param numeroFatura
	 *            the numeroFatura to set
	 */
	public void setNumeroFatura(String numeroFatura) {
		this.numeroFatura = numeroFatura;
	}

	/**
	 * @return the codigoBarras
	 */
	public String getCodigoBarras() {
		return codigoBarras;
	}

	/**
	 * @param codigoBarras
	 *            the codigoBarras to set
	 */
	public void setCodigoBarras(String codigoBarras) {
		this.codigoBarras = codigoBarras;
	}

	/**
	 * @return the carga
	 */
	public Carga getCarga() {
		return carga;
	}

	/**
	 * @param carga
	 *            the carga to set
	 */
	public void setCarga(Carga carga) {
		this.carga = carga;
	}

	public List<Debito> getLstDebitos() {
		return lstDebitos;
	}

	public void setLstDebitos(List<Debito> lstDebitos) {
		this.lstDebitos = lstDebitos;
	}

	public Historico getHistorico() {
		return historico;
	}

	public void setHistorico(Historico historico) {
		this.historico = historico;
	}

	public List<LancamentoFuturo> getLstLancamentoFuturo() {
		return lstLancamentoFuturo;
	}

	public void setLstLancamentoFuturo(
			List<LancamentoFuturo> lstLancamentoFuturo) {
		this.lstLancamentoFuturo = lstLancamentoFuturo;
	}

	public List<SaldoDebitoCredito> getLstSaldoDebitoCredito() {
		return lstSaldoDebitoCredito;
	}

	public void setLstSaldoDebitoCredito(
			List<SaldoDebitoCredito> lstSaldoDebitoCredito) {
		this.lstSaldoDebitoCredito = lstSaldoDebitoCredito;
	}

	public List<TarifaSocial> getLstTarifaSocial() {
		return lstTarifaSocial;
	}

	public void setLstTarifaSocial(List<TarifaSocial> lstTarifaSocial) {
		this.lstTarifaSocial = lstTarifaSocial;
	}

	public List<Economia> getLstEconomias() {
		return lstEconomias;
	}

	public void setLstEconomias(List<Economia> lstEconomias) {
		this.lstEconomias = lstEconomias;
	}

	public Tarifa getTarifaAux() {
		return tarifaAux;
	}

	public void setTarifaAux(Tarifa tarifaAux) {
		this.tarifaAux = tarifaAux;
	}

	public List<LancamentoCobrado> getLstLancamentoCobrado() {
		return lstLancamentoCobrado;
	}

	public void setLstLancamentoCobrado(
			List<LancamentoCobrado> lstLancamentoCobrado) {
		this.lstLancamentoCobrado = lstLancamentoCobrado;
	}

	public List<LogCorrecaoConta> getLstLogCorrecaoConta() {
		return lstLogCorrecaoConta;
	}

	public void setLstLogCorrecaoConta(
			List<LogCorrecaoConta> lstLogCorrecaoConta) {
		this.lstLogCorrecaoConta = lstLogCorrecaoConta;
	}

	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}

	public LogLeitura getLogLeitura() {
		return logLeitura;
	}

	public void setLogLeitura(LogLeitura logLeitura) {
		this.logLeitura = logLeitura;
	}

	public List<Valor> getLstValor() {
		return lstValor;
	}

	public void setLstValor(List<Valor> lstValor) {
		this.lstValor = lstValor;
	}

	public List<Produto> getLstProduto() {
		return lstProduto;
	}

	public void setLstProduto(List<Produto> lstProduto) {
		this.lstProduto = lstProduto;
	}

	public List<Volume> getLstVolume() {
		return lstVolume;
	}

	public void setLstVolume(List<Volume> lstVolume) {
		this.lstVolume = lstVolume;
	}

	public String getCompetencia() {
		return competencia;
	}

	public void setCompetencia(String competencia) {
		this.competencia = competencia;
	}

}
